# 编译器
CXX = g++

# 编译选项
# -std=c++17: 使用 C++17 标准
# -Wall -Wextra: 开启所有常用和额外的警告，有助于代码质量
# -g: 生成调试信息
CXXFLAGS = -std=c++17 -Wall -Wextra -g

# 链接选项
# -lpthread: 链接 POSIX 线程库
LDFLAGS = -lpthread

# 目标可执行文件名
TARGET = file_system

# 源文件 (在这个项目中，主要逻辑在 main.cpp)
SRCS = main.cpp

# 最终目标：编译可执行文件
all: $(TARGET)

# 编译规则
$(TARGET): $(SRCS)
	$(CXX) $(CXXFLAGS) -o $(TARGET) $(SRCS) $(LDFLAGS)

# 清理命令：删除生成的可执行文件和所有 .o 文件
clean:
	rm -f $(TARGET) *.o

# 伪目标，防止和同名文件冲突
.PHONY: all clean

